home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Hacks / Hacks ’95 / Snuffy (Moof!) - Magic Cap / Source / Snuffy.make < prev   
Text File  |  1995-06-24  |  5KB  |  113 lines

  1. #
  2. #    Snuffy
  3. #
  4. #    A silly hack that snuffs Sniffy and replaces him with a more loyal
  5. #  companion of a sadly endangered species.
  6. #
  7. #    Written at MacHack '95 in a shitty hotel in Southfield, Michigan
  8. #
  9. #    © 1995 Steve Klingsporn (moofie@dogcow.com)
  10. #
  11. #    Note:  The dogcow image is a trademark of Apple Computer, Inc.,
  12. #           and is used without permission.  If someone at Apple wants to
  13. #           yell and scream at me, they're welcome to -- my contact
  14. #           information is on the name card I install in the name card file.
  15. #
  16. #    Version:    1.0
  17. #
  18.  
  19.  
  20. OBJECTS =  {mdTarget:}Snuffy.c.o
  21. defFiles = Snuffy.Def
  22.  
  23. importedDefFiles = 
  24.  
  25. instanceFiles =  Objects.Def
  26.  
  27. tsFiles = 
  28.  
  29. htsFiles = 
  30.  
  31. ##### General Magic Directory/File Defines/Options #####
  32. thePackage = Snuffy
  33. theRAMCard = SnuffyRC
  34. OMOpts = {MagicDebugOpts} {OMMagicTarget} {ExtraOMOptions} {MagicInterfaces}Indexicals.h -read {OMDumpfile} -i :
  35. OMRAMOpts = -equates {thePackage} {mdTarget:}
  36. ramCardPackage = SnuffyRAM
  37. InterfaceDir = {mdTarget:}Interfaces:
  38. ChangeFile = {mdTarget:}ChangedClassOrOp
  39. ImportsIncludesFile = {InterfaceDir}PackageImports.h
  40. GendCInterfaceFiles = {InterfaceDir}PackageClassNumbers.h {InterfaceDir}PackageFieldNumbers.h {InterfaceDir}PackageFields.h {InterfaceDir}PackageOperationNumbers.h {InterfaceDir}PackageOperations.h
  41. GendAInterfaceFiles = {InterfaceDir}PackageClassNumbers.Equ.a {InterfaceDir}PackageFieldNumbers.Equ.a {InterfaceDir}PackageFields.Equ.a {InterfaceDir}PackageOperationNumbers.Equ.a {InterfaceDir}PackageOperations.Equ.a
  42.  
  43. COptions= {MagicCOptions} {MagicDump} {MagicCDebugOpts} {MagicTarget} -i {MagicTargInterfaces} -i {MagicInterfaces} -i "{mdTarget:}"Interfaces: `Catenate Build.Directories ≥ dev:null || Set Status 0`
  44.  
  45. ##### Default Rules #####
  46. .c.o ƒ .c
  47.     {C} {DepDir}{Default}.c -o {Targ} {COptions} {ExtraCOptions}
  48.  
  49. ##### Directory dependencies #####
  50. {mdTarget:} ƒ : {mdTarget:}
  51.  
  52. {mdTarget:}Code ƒ {objects} {thePackage}.make
  53.     {Link} -xm gm -fastlink on -dead off -o {mdTarget:}Code -Sym on -c gm01 -t CLUS -mapgm {mdTarget:}Code.Map {objects} {ExtraLinkOptions}
  54.  
  55. ##### General Magic ObjectMaker Dumpfile Dependencies #####
  56. "{OMDumpfile}" ƒ "{MagicDevTools}"ObjectMaker # if ObjectMaker changes, regenerate interfaces
  57.     Execute BuildPreCompileIfNeeded
  58.  
  59. ##### General Magic ObjectMaker Dependencies #####
  60. {GendCInterfaceFiles}    ∂
  61. {GendAInterfaceFiles}    ∂
  62.     ƒ {ChangeFile}
  63.  
  64. {objects} ƒ     ∂
  65.     {GendCInterfaceFiles}    ∂
  66.     {GendAInterfaceFiles}    ∂
  67.     {ImportsIncludesFile}
  68.  
  69. {ImportsIncludesFile} ƒ {importedDefFiles} {thePackage}.make
  70.     Echo > {ImportsIncludesFile}
  71.     For iDefFile In {importedDefFiles}                                                                                                                                                            ;∂
  72.         If {iDefFile} =~ /(≈:)*(≈)®1Public.Def/                                                                                                                                                    ;∂
  73.             Set importedPackageName "{®1}"                                                                                                                                                            ;∂
  74.             NewFolder {InterfaceDir}temp || Set Status 0                                                                                                                                            ;∂
  75.             ObjectMaker {OMOpts} {iDefFile} -headers {InterfaceDir}temp: -i "{MagicDevDefFiles}"                                                                                                    ;∂
  76.             Delete -i {InterfaceDir}temp:TempImports.h || Set Status 0                                                                                                                                ;∂
  77.             Catenate {InterfaceDir}temp:≈.h > {InterfaceDir}temp:TempImports.h                                                                                                                        ;∂
  78.             StreamEdit -e "/__Package_/ Replace /__Package_/ ∂"__{importedPackageName}_∂"" "{InterfaceDir}temp:TempImports.h" > "{InterfaceDir}{importedPackageName}Imports.h"  || Set Status 0        ;∂
  79.             Echo "∂#include ∂"{importedPackageName}Imports.h∂"" >> {ImportsIncludesFile}                                                                                                            ;∂
  80.             Delete -y "{InterfaceDir}temp:"    || Set Status 0                                                                                                                                            ;∂
  81.         End                                                                                                                                                                                        ;∂
  82.     End
  83.  
  84. {ChangeFile} ƒ {defFiles} {thePackage}.make
  85.     Date > {ChangeFile}.New
  86.     ObjectMaker {OMOpts} {defFiles} {tsFiles} -templates {mdTarget:}Templates.r.New -headers {InterfaceDir} -i "{MagicDevDefFiles}"
  87.     Rename -y {mdTarget:}Templates.r.New Templates.r
  88.     MagicBuildDebugging {thePackage} {mdTarget:} {InterfaceDir} || (Echo "### Failure building Debugging information∂n")
  89.     Rename -y {ChangeFile}.New {ChangeFile}
  90.  
  91. ##### General Magic Main Build Rules #####
  92. {thePackage} ƒ "{OMDumpfile}" {ChangeFile} {mdTarget:}Code {defFiles} {tsFiles} {instanceFiles} {thePackage}.make 
  93.     ObjectMaker {OMOpts} {defFiles} {tsFiles} {instanceFiles} -o {mdTarget:}{thePackage} -code {mdTarget:}Code
  94.     Move -y {mdTarget:}{thePackage} {Targ}
  95.     MagicDeleteChanges
  96.     Duplicate -y {Targ} "{MagicDevSystem}"
  97.     If "{MagicAutoRun}" == 1; MagicRunPackage {thePackage}; End
  98.  
  99. ##### General Magic RamCard Build Rules #####
  100. {ramCardPackage} ƒ "{OMDumpfile}" {ChangeFile} {mdTarget:}Code {defFiles} {tsFiles} {instanceFiles} {thePackage}.make
  101.     ObjectMaker {OMOpts} {OMRAMOpts} {defFiles} {tsFiles} {instanceFiles} -o {ramCardPackage} -code {mdTarget:}Code
  102.     Catenate {mdTarget:}ClusterEquates {mdTarget:}RoutineEquates > {mdTarget:}SavedEquates
  103.  
  104. {theRamCard} ƒ {ramCardPackage}
  105.     delete -i {mdTarget:}{theRamCard}.Def ∑ dev:null
  106.     Echo "Package " {thePackage} ∂"{ramCardPackage}∂"∂; >> {mdTarget:}{theRamCard}.Def
  107.     ObjectMaker -uniqueID {CardTypeOptions} -rom={CardBase} {OMOpts} {OMRAMOpts} {mdTarget:}{theRamCard}.Def -o {mdTarget:}{theRamCard}
  108.     Move -y {mdTarget:}{theRAMCard} {Targ}
  109.     MagicCreateEquates {thePackage}
  110.     Duplicate -y {mdTarget:}Code.Sym "{MagicTelebugFolder}{theRAMCard}.Sym"
  111.     Echo "∂nsource on∂nuse ∂"{thePackage}RC.SYM∂"∂nautosource on∂nsourcepath `Directory`" > "{MagicTelebugFolder}Telebug UserStartup"
  112.     If "{MagicAutoRun}" == 1; MagicSendRAMCard {thePackage}; End
  113.